mapletreefandomcom-20200214-history
Python
Python is nice for building on a large selection of free libraries and quickly prototyping new ideas. Here are some of mine. Applications These projects bring together multiple aspects into a standalone (or extendable) program suitable for Facebook or Google App Engine */Moreh/ - A program similar to Free Rice to help learn the Hebrew alphabet and vocabulary */Conductor/ - A tone sequencer where the buttons have their own sense of timing *Secure Chat - A secure chat / VoIP / webcam program with encryption *Picture Password - Generate passwords based on cursor movement within a picture Resources *Running Django apps on Google App Engine - PyCon 2011 presentation *Django and Google App Engine: Why I'm Using Flask and Amazon EC2 - PyOhio 2011 presentation *Testing and Django - PyCon 2012 presentation *Best Practices for Impossible Deadlines - PyCon 2011 presentation on developing web apps quickly *webapp2 - Basic Google App Engine framework *Varnish - caching service to speed up web apps *Using Python with Amazon's cloud Data Processing These projects handle general data processing algorithms. *Bloom Filters - A highly memory-efficient way to detect a particular condition *Fixed Point Math - Based on input ranges and output accuracy, calculate bits and signal format needed Resources *SciPy - package for mathematics, science, and engineering (examples) *scikit-learn - SciKit package for machine learning (presentation, slides, iPython notebook, code, examples) *Flow chart for which scikit-learn algorithm to use *Programming Collective Intelligence - textbook and code *Machine Learning for Hackers - textbook and code *Coursera Machine Learning - Stanford course that dives into machine learning math Image Processing These projects handle image processing. */Faces/ - Facial recognition for Python */Panoramic/ - Merge pictures that share content */Model/ - Build 3D model based on pictures of an object at different angles *Mosaic - Convert image into plans for a ceramic tile or glass mosaic *Space - Download and colorize raw data from NASA space telescopes for large-format images *Color quantization by minimizing noticeable discontuities (e.g. more blues for the sky than K-means) Resources *pyleargist : global scene recognition and categorization *pillow : More active fork of PIL *SimpleCV : framework for building computer vision applications *Boids : Crowd/herd/swarm simuation (paper, science, Blender tools coming soon) *Blender : Full featured 3-D rendering tool (homepage and wiki) Audio Processing These projects handle audio streams (i.e. microphone feeds) and audio files. *Transcript - Generate a transcript for recorded speech *Live Looper - Record, loop, and overlay audio tracks *Midi Voice - Map vocal feeds to instrumental tracks Resources *Dragonfly : API for the Dragon Naturally Speaking engine *Sonic Visualiser : Open source graphing/annotation tool for audio processing *SciPy : Has interface for reading/writing *.wav files *PyCon 2013 code for "Digital signal processing through speech, hearing, and Python" (video) Text Processing These projects deal with processing of text and the English language. *Spell Check - Use histograms and 1st / 2nd / 3rd order expectations to find and recommend corrections for errors in scanned text documents Resources *digital work on early-19c collections : OCR on outdated fonts *difflib : useful for finding repeats *Finite State Transducers : used to generate probablistic models *Ocropus : Python OCR system *Norvig's spelling corrector : Fairly good and only 21 lines *Cool things in Collections and Python 3,3 (video) Security These projects deal with encryption, steganography, and other secure computing topics. Note that the random module uses the deterministic Mersenne Twister generator and is unsuitable for cryptographic purposes. *Webcam Key - Generate encryption/decryption keys from a webcam capture *MP3 Embedder - Distribute a file among a variety of mp3 files without ruining audio quality *Elliptic Encryption - Generate elliptic curve keys and stream encryption/decryption Resources *hashlib : built in library with SHA1/224/256/384/512, MD5, and possibly more *PyCon Crypto 101 : Introductory video to cryptography. References recommended algorithms (and ones not to use!) Interfacing These programs interface between one or more things *Free Songs - Based on Pandora, last.fm, etc... libraries, find free songs on Noisetrade, last.fm, etc... */PDF/ - PDF markup / page extraction/ addition tool */Stepmania/ - Modify step files generated from Dancing Monkey *Bible Search - Search multiple translations, original language, and root words */pyWMP/ - Provide a Python-style interface to Windows Media Player to perform library cleanup and export playlists or filtered-selection of songs Resources A general collection of useful websites for reference or inspiration (or both): Coding *Software Carpentry : Programming best practices and how to aimed at researchers *Python 2.7 Standard Library : Everything you need to know about what's built into Python *Python Module of the Week : Short examples of lesser known but helpful modules of the standard library *http://nullege.com/ : Search engine for Python code examples *Exception handling : PyCon video on how exception handling can be easy and make life easier *Iterators and Generators : PyCon video on how generators can be easy and make life easier *Decorators 2.X : and slides. Also make life easier, see functools and contextlib from standard library *Metaprogramming 3.X : changes in Decorators, Class decorators, Descriptors, and Metaclasses *Documentation : PyCon video on the benefits and types of documentation *Automated Testing : PyCon video on how to automate tests for better code **pytest : Can find (with a "test_" prefix) and run test routines **coverage.py : Measure statement/branch coverage of tests **lettuce : Use English language to define system tests *Profiling : is good, check pyvideo for reference Topics *Python Module of the Week : Short examples of lesser known but helpful modules of the standard library *http://pyvideo.org/ : Hosts videos from PyCon and other presentations. Lots of cool things *https://speakerdeck.com/pyconslides : Hosts presented slides from PyCon *http://nullege.com/ : Search engine for Python code examples *Natural Language Toolkit and textbook : Package containing quite a few word sources and "text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning." *IPython : Collection of Python examples for different topics *SymPy : Symbolic Processing (think Wolfram Alpha) with tutorials, search engine, and live console Machine Learning *AIMA Code : Python code used in Peter Norvig's textbook AI: A Modern Approach *scikit-learn - SciKit package for machine learning (presentation, slides, iPython notebook, code, examples) *Flow chart for which scikit-learn algorithm to use *Programming Collective Intelligence - textbook and code *Machine Learning for Hackers - textbook and code *Coursera Machine Learning - Stanford course that dives into machine learning math *Probabilistic Programming and Bayesian Methods for Hackers : Textbook / IPython notebook